Modern telecommunication networks employ a layered architecture, such as the Open Systems Interconnection seven-layer reference model (OSI-7) or variations thereon, to deliver end-user data across diverse media (e.g., fiber optics, copper wire, radio air interface, and the like). The layered architecture, also known as a protocol stack, hides the low-level implementation details of the different media from high-level logical data structures, such as IP packets. As data are processed “down” the protocol stack at a transmitter, data from the higher-level logical data structures are packed into lower-level, typically smaller, data structures optimized for a particular transport medium. A header containing information necessary for processing the data at that protocol layer is attached, and the data may be further processed, such as error detection and correction encoding, encryption, and the like. This process is referred to as “encapsulation” of the data into the lower-level logical data structures.
Numerous lower-level logical data structures are transmitted across a channel to a receiver. The receiver relies on information in the headers for ordering the lower-level logical data structures, and performs processing such as error correction, decryption, and the like. When all the data in a higher-level logical structure are successfully received, the lower-level logical structure headers are discarded and the higher-level logical structure is re-assembled (referred to as “decapsulation”) and passed “up” the protocol stack for further processing.
As mentioned, the higher-level logical data structures are typically larger—often dramatically so—than the lower-level logical data structures into which they are encapsulated. One way to preserve and transmit information about the boundaries of the higher-level logical structure is to define an indicator in each lower-level logical structure that indicates whether or not the lower-level logical structure includes a boundary of a higher-level logical structure. For example, a Boundary Indicator (BI) bit may be defined (the BI bit may or may not be considered part of the header). If the BI=1, the lower-level logical structure includes the end of a higher-level logical structure, and may include the beginning of a second higher-level data structure (or any additional space may be padded). If the BI=0, the lower-level logical structure is an intermediate one, and at least one successive lower-level logical structure will also include data for the same higher-level logical structure. Of course, numerous variations of this form of transmitter/receiver synchronization with respect to the boundaries of higher-level logical data structures are known.
If the Boundary Indicator is received erroneously, and the error is not detected, synchronization between the transmitter and receiver is lost. Using the above example, if BI=1 is transmitted to indicate the end of a higher-layer logical data structure but is received as BI=0, the receiver will wait for more lower-level logical data structures, and will not decapsulate and pass on the higher-level logical structure. The receiver may time-out, make explicit transmission requests for the “missing” data, or otherwise process the perceived error of not receiving further lower-level logical data structures. Conversely, if BI=0 is transmitted but received as BI=1, the receiver will prematurely decapsulate and pass on a higher-level logical structure that is incomplete. In this case, processing at a higher protocol layer will eventually discover the error, and will trigger a retransmission of part or all of the higher-level logical structure. In either case, the transmission is disrupted and some error-handling routine must reestablish higher-layer logical data structure boundary synchronization between the transmitter and receiver.
Accordingly, ensuring the correct receipt of the Boundary Indicator improves the efficiency of telecommunication networks. Several methods for accomplishing us are known in the art. For example, the BI may be protected by additional error correction coding (ECC). However, error correction coding operates by adding redundancy. This reduces efficiency by increasing the overall ratio of ECC bits to user data. As another example, the BI itself may be replicated. The probability of multiple-bit errors, coinciding with the duplicate BI bits, is statistically lower than the probability of a single-bit BI error. However, this also reduces efficiency by increasing the ratio of overhead (redundant BI) bits to user data.